// 泛型函数
function getData<T>(value: T): T {
    return value
}

// 泛型类
class MinClass<T> {
    public list: T[] = [];

    add(value: T): void {
        this.list.push(value)
    }

    min(): T {
        return this.list[0];
    }
}

let minClass = new MinClass<number>()

// 泛型接口1
interface Config {
    <T>(value: T): T;
}

let config: Config = function <T>(value: T): T {
    return value;
}

// 泛型接口2
interface Config1<T> {
    (value: T): T;
}

function configFn<T>(value: T): T {
    return value;
}

let fn:Config1<string> = configFn

export {}